package panels;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

import main.Conexion;

import com.toedter.calendar.JDateChooser;

public class AdministracionPanel extends JPanel implements ActionListener{
	
	private static final long serialVersionUID = 1L;
	private static Conexion conexion;
	
	private JTable table;
	private DefaultTableModel model;
	private JButton btnMostrar;
	private JButton btnArticulos;
	protected JDateChooser fecha;
	
	public AdministracionPanel() {
		setLayout(new BorderLayout(0, 0));
		
		conexion = new Conexion();
		conexion.open();
		
		JPanel panelCabecera = new JPanel();
		add(panelCabecera, BorderLayout.NORTH);
		
		Date dt = new Date();
		Calendar cal = Calendar.getInstance();
		cal.setTime(dt);
		fecha = new JDateChooser(cal.getTime());
		((JTextField) fecha.getDateEditor().getUiComponent()).setEnabled(false);
		panelCabecera.add(fecha);
		
		btnMostrar = new JButton("Mostrar Produccion del dia");
		panelCabecera.add(btnMostrar);
		btnMostrar.addActionListener(this);
		
		btnArticulos = new JButton("Articulos");
		panelCabecera.add(btnArticulos);
		btnArticulos.addActionListener(this);
		
		model = new DefaultTableModel();
		table = new JTable(model);
		add(new JScrollPane(table), BorderLayout.CENTER);
		
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == btnMostrar){
			model = new DefaultTableModel();
			model.addColumn("Codigo Operario");
			model.addColumn("Referencia Articulo");
			model.addColumn("Departamento");
			model.addColumn("Fecha");
			model.addColumn("Turno");
			model.addColumn("Piezas OK");
			model.addColumn("Piezas NG");
			
//			Date dt = fecha.getDate();
//			//java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//			java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
//			String currentTime = sdf.format(dt);
			
			String query = "SELECT * FROM produccion";
			ResultSet rs = conexion.ejecutarConsulta(query);
			
			try {
				while (rs.next()) {
					int cod = rs.getInt("codOperario");
					String ref = rs.getString("refArticulo");
				    String departamento = rs.getString("departamento");
				    Date fecha = rs.getDate("fecha");
				    String turno = rs.getString("turno");
				    int ok = rs.getInt("piezasOK");
				    int ng = rs.getInt("piezasNG");
					model.insertRow(model.getRowCount(), new Object[]{cod,ref,departamento,fecha,turno,ok,ng});
					table.setModel(model);
			    }
					
			} catch (SQLException exc) {
				exc.printStackTrace();
			}
		}
		if (e.getSource() == btnArticulos){
			model = new DefaultTableModel();
			model.addColumn("Referencia");
			model.addColumn("Nombre");
			model.addColumn("Cantidad");
			model.addColumn("Piezas OK");
			model.addColumn("Piezas NG");
			
			String query = "SELECT * FROM articulos";
			ResultSet rs = conexion.ejecutarConsulta(query);
			
			try {
				while (rs.next()) {
					String ref = rs.getString("Referencia");
				    String nombre = rs.getString("Nombre");
				    int cantidad = rs.getInt("Cantidad");
				    int ok = rs.getInt("piezasOK");
				    int ng = rs.getInt("piezasNG");
					model.insertRow(model.getRowCount(), new Object[]{ref,nombre,cantidad,ok,ng});
					table.setModel(model);
			    }
					
			} catch (SQLException exc) {
				exc.printStackTrace();
			}
		}
	}

}
